<?php
/*******************************************************************************

    FinalsClub.org is a platform for students and faculty to collaborate
    and share their knowledge with the world.

    Copyright (C) 2009  Andrew Magliozzi

    This file is a part of FinalsClub.org.

    FinalsClub.org is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

    To contact FinalsClub.org, send an email to info@finalsclub.org, or
    send mail to Finals Club, c/o Veritas Tutors, 1132 Massachusetts Avenue,
    Cambridge, MA 02138.

*******************************************************************************/

class annotationsComponents extends sfComponents {
	
	public function executeProfileDetail() {
	
		
		//grab all annotations made my this user for notes
		$annotate_api = new AnnotateApi();
		
		//if the profile library is of the current user then show all files
		if($this->user_id = $this->getUser()->getId())
		{
			$files = FilePeer::retrieveByOwnerId($this->user_id);
		}
		else
		{
			$user_files = FilePeer::retrieveByOwnerId($this->user_id);
			$result = array();
			foreach($files as $file)
			{
				if(EntitlementPeer::isEntitled($file->getId(), $this->getUser()->getId(), EntitlementPeer::FILE_TYPE, EntitlementPeer::READ_PERMISSION))
				{
				$result[] = $file;
				}
			}
			
			$files = $result;
		}
		
		$this->user = UserPeer::retrieveById($this->user_id);
	
		//get annotations for each file 
		$res = array();
		
		foreach($files as $file)
		{
			
	    	$file_notes = $annotate_api->listNotes($this->user->getEmail(), $file->getAnnotateDate(), $file->getCode(), true);
			$file_notes = json_decode($file_notes, true);
	    	
			if(isset($file_notes['notes']))
	    	{
				$file_notes = $file_notes['notes'];			
	    		$res[] = array('obj'=>$file, 'annotations'=>$file_notes);
	    	}
	    	else
	    	{
	    		$res[] = array('obj'=>$file, 'annotations'=>array());
	    	}
		}
		
		$this->files = $res;
		
	}
}